package com.hj.javase.lambda;

import java.util.*;

/**
 * @Author : hujing
 * @Date: 2025/6/4 10:26
 * @Description:
 */
public class LambdaDemo {

    public static void main(String[] args) {
        String[] arr = {"banana", "apple", "orange"};
        // 排序前
        System.out.println(Arrays.toString(arr));

        //通过比较器进行排序
        // 如果s1小于s2,则返回负数;如果s1等于s2,则返回0;如果s1大于s2,则返回正数
        Arrays.sort(arr, (s1, s2) -> s1.compareTo(s2));

        // 排序后
        System.out.println(Arrays.toString(arr));


        //使用reduce
        List<String> props = List.of("profile=native", "debug=true", "logging=warn", "interval=500");
        Map<String, String> result = props.stream().map(kv -> {
                    String[] ss = kv.split("\\=", 2);
                    return Map.of(ss[0], ss[1]);
                })
                //把所有的map合并成一个map,其中new HashMap<>是初始结果,m是上一次操作的结果,kv是当前的map元素
                .reduce(new HashMap<>(), (m, kv) -> {
                    m.putAll(kv);
                    return m;
                });
        result.forEach((k, v) -> System.out.println(k + "=" + v));
    }
}
